package com.lb.activity.service;

import com.lb.activity.util.ResultUtil;
import com.lb.activity.vo.PurchaseApplyVo;

/**
 * 采购接口
 * @author liubin
 */
public interface PurchaseApplyService {
    /**
     * 开始流程
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil add(PurchaseApplyVo purchaseApplyVo);

    /**
     * 我的采购申请
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil myPurchase(PurchaseApplyVo purchaseApplyVo);

    /**
     * 我的所有采购记录
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil myPurchaseAll(PurchaseApplyVo purchaseApplyVo);

    /**
     * 采购经理审批
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil procurement(PurchaseApplyVo purchaseApplyVo);

    /**
     * 采购经理处理任务
     * @param taskId
     * @return
     */
    ResultUtil procurementDetail(String taskId);

    /**
     * 采购经理审批
     * @param taskId
     * @param approve
     * @return
     */
    ResultUtil procurementDeal(String taskId, String approve);

    /**
     * 财务审批
     * @param taskId
     * @param approve
     * @return
     */
    ResultUtil financeDeal(String taskId, String approve);

    /**
     * 出纳
     * @param taskId
     * @return
     */
    ResultUtil chunaDeal(String taskId);

    /**
     * 待收货
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil pendingReceipt(PurchaseApplyVo purchaseApplyVo);

    /**
     * 收货
     * @param taskId
     * @return
     */
    ResultUtil takeGood(String taskId);

    /**
     * 待重新提交集合
     * @param purchaseApplyVo
     * @return
     */
    ResultUtil myPurchaseAgain(PurchaseApplyVo purchaseApplyVo);

    /**
     * 重新提交
     * @param taskId
     * @param approve
     * @return
     */
    ResultUtil purchaseAgain(String taskId,String approve);

    /**
     * 总经理审批
     * @param taskId
     * @param approve
     * @return
     */
    ResultUtil generalManagerDeal(String taskId,String approve);

    /**
     * 采购详情
     * @param id
     * @return
     */
    ResultUtil purchaseDetail(Long id);
}
